[新機能]dbt Explorerで各Modelのクエリ回数が確認できるようになりました

[新機能]dbt Explorerで各Modelのクエリ回数が確認できるようになりました

Clock Icon2024.10.10

さがらです。

dbt Cloudの新機能として、dbt Explorerで各Modelのクエリ回数が確認できるようになりました。(2024/10/7時点ではSnowflakeとBigQueryのみサポートで、プレビュー機能です。)

https://docs.getdbt.com/docs/collaborate/model-query-history

下図は上記の公式ドキュメントからの引用ですが、dbt project内で最もクエリされているModelを確認したり、リネージ上で各Modelのクエリ回数が確認できるようになっています。

most-consumed-models

model-consumption-queries

model-consumption-lenses

実際に私もこの機能をSnowflakeで試してみましたので、設定手順を本記事でまとめてみます。

設定手順

dbt Cloudで用いるロールへの権限付与

Snowflakeと連携してこの機能を使う場合には、「SNOWFLAKE」データベース内の「ACCOUNT_USAGE」スキーマに存在している「QUERY_HISTORY」と「ACCESS_HISTORY」の2つのviewの閲覧権限が必要です。

これらのviewを見るための最小権限としては、GOVERNANCE_VIEWERというデフォルトで存在しているDatabase Roleの付与が必要です。(参考:公式ドキュメント

この権限の付与を行うには、以下のようなクエリを実行すればOKです。

use role accountadmin;
use database snowflake;
use schema account_usage;

grant database role governance_viewer to role <任意のロール>;

dbt Cloudでの設定

対象のdbt projectの「PROD」が設定されているEnvironmentを開きます。

2024-10-07_09h37_01

Editの画面に移り、「Query History」と書かれた設定欄まで移動し、Test Permissionsを押します。

2024-10-07_09h38_05

無事に「Success」と表示されたら、Enable Query Historyも有効化します。

2024-10-09_11h52_17

確認してみた

この後、実際にdbt Explorer上で確認してみます。(事前に各Modelから作られたテーブル・ビューに対してクエリを数回行っておきました。dbt Explorerへの明確な反映時間はわかっていないのですが、少なくとも更新までは数時間要します。)

まず、Model一覧でも各Modelごとにクエリされた回数が「Query count」列に表示されます。

2024-10-10_10h33_35

全体のリネージで左下を「Consumption query history」にすると、リネージ上で各Modelのクエリ回数がわかります。

2024-10-10_10h34_59

最後に

dbt Cloudの新機能として、dbt Explorerで各Modelのクエリ回数が確認できるようになったので、試して内容をまとめてみました。

特にリネージ上で各Modelごとのクエリ回数がわかるのが嬉しいですね!Modelの棚卸しがよりしやすくなる機能だと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.